Oracle数据库内存使用情况分析查看;内存占用过高 您所在的位置:网站首页 linux内存占满 oracle Oracle数据库内存使用情况分析查看;内存占用过高

Oracle数据库内存使用情况分析查看;内存占用过高

2024-07-15 05:11| 来源: 网络整理| 查看: 265

查看会话内存占用情况

SELECT server "连接类型",        s.username,        OSUSEr,        NAME,        VALUE/1024/1024 "占用内存MB",        s.SID "会话ID",        s.serial#,        spid "操作系统进程ID",        p.PGA_USED_MEM,        p.PGA_ALLOC_MEM,        p.PGA_FREEABLE_MEM,        p.PGA_MAX_MEM   FROM v$session s, v$sesstat st, v$statname sn, v$process p  WHERE st.SID = s.SID    AND st.statistic# = sn.statistic#    AND sn.NAME LIKE 'session pga memory'    AND p.addr = s.paddr  ORDER BY VALUE DESC  如果想杀死指定会话alter system kill session 'sid,serial#';,内存没有释放执行如下步骤;

select a.spid,b.sid,b.serial#,b.username from v$process a,v$session b where a.addr=b.paddr and b.status='KILLED' ;

查看killed状态的会话,

windows下:orakill.exe orcl spid,其中orcl是数据库的sid,spid是上面查询出来的

linux下:kill -9 spid;

 

SQL消耗资源情况查询:

从V$SQLAREA中查询最占用资源的查询

select b.username username,a.disk_reads reads, a.executions exec,a.disk_reads/decode(a.executions,0,1,a.executions) rds_exec_ratio, a.sql_text Statement from v$sqlarea a,dba_users b where a.parsing_user_id=b.user_id and a.disk_reads > 100000 order by a.disk_reads desc;

用buffer_gets列来替换disk_reads列可以得到占用最多内存的sql语句的相关信息。

V$SQL是内存共享SQL区域中已经解析的SQL语句。 列出使用频率最高的5个查询

 

select sql_text,executions from (select sql_text,executions, rank() over (order by executions desc) exec_rank from v$sql) where exec_rank



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有